Chomu's Blog.

>

Posts

GitHub

정처기 2024 2회차 복기

목차

C 언어: 5개

포인터 3개

배열 비교

void check(int *a, int *b) {
    if (a == b) {
        printf("O");
    } else {
        printf("N");
    }
}
void main() {
    a1 = {1,2,3,4}
    a2 = {1,2,3,4}
    a3 = {1,2,3}
 
    check(a1, a2)
    check(a2, a3)
    check(a1, a3)
}

ONN

클로저 / 스위치

클로저 훼이크 스위치 break 낚시

void swap() {
    int a = 11, b = 19;
    int temp;
    temp = a;
    a = b;
    b = temp;
}
void main() {
    int a = 11, b = 19;
    swap();
    switch(a) {
        case 1:
            b++;
        case 11:
            b += 2;
        default:
            b += 3;
            break;
    }
    printf("%d", a-b);
}

-13

문자열 포인터

void test (str* d, str* s) {
    while (*s != '\0') {
        *d = *s;
        d++;
        s++;
    }
    *d = '\0';
}
void main() {
    i = 0, sum = 0;
    str1 = "first";
    str2 = "teststring";
    test(str2,str1);
    while(str[i] != '\0') {
        sum = sum + i
        i++;
    }
    printf("%d", sum);
}

10

2차원 배열 포인터

void test(int[][] arr) {
    print("%d", parr[1][1] + *(parr[1]+2) + **parr)
}
void main() {
    int[3][3] arr = {1,2,3,4,5,6,7,8,9}
    int[][] *parr = {arr[1], arr[2]}
 
    test(parr)
}

구조체 포인터

struct list {
    int h1;
    list *h2;
}
void main() {
    list a = {10, 0}, b = {20, 0}, c = {30, 0};
    *head = &a;
    a.h2 = &b;
    b.h2 = &c;
    print("%d", head->h2->h1)
}

20